/**
* eCommerce Application Sample for J2EE Training 
* Remote interface for the EcomAdmin bean
* EJB3.0 
* @author Fabienne Boyer - Didier Donsez - may 2006
*/

package ecom.beans.session;

import ecom.beans.entity.Accounts;
import ecom.beans.entity.Address;
import ecom.beans.entity.Category;
import ecom.beans.entity.Clients;
import ecom.beans.entity.Commandes;
import ecom.beans.entity.Productstore;
import ecom.beans.entity.Produits;
import java.util.List;



public interface EcomAdminRemote {

    //Account
    public void createAccountUser(long ID_CLIENT, String accountOwner, double balance, String iban);

   public void createProductStore(int productStoreId, String city, int productStoreAccountId, String productStoreName);

   public void createProduct(String productName, double productPrice, long productStoreId, String description, String quantity, String url, long idcategory);
    //	 to be completed as neededvoid createProductCategory(String name);

   public int verifyAdminPassword(String login, String password);

    public void deleteProduct(Long idProduct);

    void deleteStore(Long idStore);
    public void createAchat(String city, String name, double price, String quantity, Commandes commandes, Produits produits );
    public Commandes createCommande(Long idClient);
    public Commandes getCommandeByid(Long idClient);

    void creditAccount(Long idCustomer, double sumAccount);

   public List<Accounts> getAllAccount();

   public boolean isAdminAuthentified();

    List<Productstore> getAllProductStore();

    List<Produits> getAllProduct();

    List<Produits> getProductsOfStore(Long idStore);
    List<Produits> getProductsOfCategory(Long idStore);

    List<Productstore> getStoresOfProductCategory(Long idCategory);

    List<Category> getAllProductCategory();

    Category getCategoryById(Long id);

    String getAllProductCategoryToString();

    List<Clients> getAllCustomer();

    Clients getCustomerById(Long id);

    Accounts getCustomerAccount(Long idUser);

    Accounts getProductStoreAccount(Long idUser);

    Address getCustomerAddress(Long idCustomer);

    public void UpdateUser(String prenom,String nom,String email,String password,String phone,int age);
    public void deleteCustomer(Long idClient);

    public Clients getUserbyId(Long idUser);

    
}
